Communications interfaces facilitate digital computer input/output operations by controlling the flow of data transmitted by the computer to one or more output devices and the flow of data transmitted from one or more input devices to the computer.
Typically, the computer is programmed to transmit output data to a communications interface which, in turn, transmits the data to the output device in controlled fashion, at the relatively slow data transfer rate at which the output device operates, thereby freeing the computer from the task of ensuring that all applicable data transmission protocols are adhered to while the data is transmitted to the output device.
The computer programming for transferring data from the computer to an output device is usually such that a check is first made by the computer to determine whether the communications interface is already "busy" transmitting data to the output device. If the communications interface is "busy", then the computer must wait some minimum time interval before again checking to see if the communications interface is free to accept fresh data. If the communications interface is "free", then a data character is transmitted to the communications interface, which then enters the "busy" state, and transmits the data character to the output device, independently of the operation of the computer. Because the data transfer rate attainable by even a very high-speed output device will be relatively slow in comparison to the data transfer rate attainable by the computer, the communications interface remains in the "busy" state for a comparatively long time. If the computer has additional data available for transmission to the output device it must wait until the communications interface has reverted from the "busy" state to the "free" state. Such waiting causes a bottleneck which may impede operating some very high-speed output devices (such as graphics terminals, which may be capable of operating at 19,200 baud data transfer rates) at their maximum capabilities.
The present invention substantially reduces the time during which the computer must wait for the communications interface to revert from the "busy" state to the "free" state and become available to accept fresh data for transmission to the output device. The communications interface of the present invention may accept up to 1,022 data characters from the computer much faster than a conventional output device can accept that data. The data is temporarily stored in an output buffer included in the communications interface. The transfer of data from the computer to the temporary output storage buffer is handled by high-speed electronic hardware, in a manner which minimizes the time the computer must wait before fresh data may be transmitted. The communications interface then transmits the data from the temporary output storage buffer to the output device at the relatively slow data transfer rate attainable by the output device and independently of the operation of the computer which initiated the data output operation.
A corresponding data transfer bottleneck may be encountered during the transmission of data from an input device to the computer. The computer may, for example, be busy executing some non-input task when the input device presents the communications interface with a stream of data characters for input to the computer. If the computer does not happen to be ready to accept fresh input data then the data may be lost, necessitating retransmission of the data to the computer.
The communications interface of the present invention also includes a temporary input storage buffer in which up to 2,048 input data characters received from an input device may be temporarily stored for subsequent rapid transfer to the computer. Thus, a relatively large block of data may be assembled for input to the computer. This is advantageous when input is to be received from a relatively high-speed input device at a time when the computer is heavily burdened by some other operation, such as outputting data to a very high-speed output device. The communications interface accepts the input data and stores it temporarily in the input storage buffer independently of the operation of the computer, thereby minimizing the likelihood that input data may be lost.
It is accordingly an object of the present invention to provide a data communications interface having output buffer storage for rapidly accumulating data output by the computer and for temporarily storing that data for subsequent transmission to a relatively slow speed output device, independently of the operation of the computer.
It is a further object of the invention to provide a communications interface having input buffer storage for accumulating, independently of the operation of the computer, data received from an input device and for temporarily storing that data for subsequent rapid transmission to the computer.